/*题目描述
删除一个串最右边的非字母字符
输入
一个带有空格的字符串
输出
首先输出一个左括号，然后输出处理后的字符串，最后输出一个右括号。
样例输入 复制
Hello world.        ！
样例输出 复制
[Hello world]
提示
首先用指针寻找到字符串的结束位置
然后指针倒着向前寻找第一个字母出现的位置，
在这个指针后面的位置设置字符串结束标志。 */
#include <stdio.h>
#include <ctype.h>
int main(void)
{
    char s[256];
    // gets(s); 可以但是不安全,参考蠕虫病毒
    scanf("%[^\n]", s); //%[^+我们需要停止的字符] scanf的格式化输入
    char *p = s;        // 指针指向字符串的首地址
    while (*p != '\0')  // 指针指向的字符不是字符串的结束符
        p++;
    while (!isalpha(*p)) // 指针指向的字符不是字母
        p--;
    *(p + 1) = '\0'; // 指针指向的字符是字母,将指针指向的字符的下一个字符设置为字符串的结束符
    if (isalpha(*s)) // 指针指向的字符是字母
        printf("[%s]", s);
    else
        printf("[]");
    // printf("[%s]\n", s);
    return 0;
}